package com.cyf.service;

//import com.cyf.activemq.network.bean.MqPayOrderRsp;

import com.cyf.db.bean.PayOrder;
import com.cyf.util.PayOrderMessageList;

import java.util.Date;
import java.util.List;

/**
 * Created by cage on 2016/12/5.
 */
public interface PayOrderService {

    /**
     * 获取未下发至车场的账单
     *
     * @return
     */
    List<PayOrder> getPayOrder() throws Exception;

    /**
     * 车场处理账单后，成功，云端更新账单发送状态
     * @param rsp
     */
//    void updatePayOrder(MqPayOrderRsp rsp);

    /**
     * 获取未处理的账单
     *
     * @return
     */
    List<PayOrder> getUntreatedPayOrder();

    /**
     * 更新支付账单的状态
     *
     * @param payOrder
     */
    void updatePayOrderStatus(PayOrder payOrder);

    /**
     * 更新支付账单的状态
     * @param transactionId
     * @param payWay
     */
//    PayOrder updatePayOrderStatus(String transactionId, int payWay);

    /**
     * 保存支付停车费信息后，向车场下发消息
     *
     * @param payOrder
     */
    void sendPayOrder(PayOrder payOrder);

//    /**
//     * 保存月卡充值信息后，向车场下发消息
//     * @param payOrder
//     */
//    void sendRechargeMessage(PayOrder payOrder);

    /**
     * 根据商户订单号查询订单信息
     *
     * @param orderNo
     * @return
     */
    PayOrder selectByOrderNo(String orderNo);

    /**
     * 修改优惠券id
     *
     * @param couponId
     * @param orderNo
     */
    void updatePayOrderCouponId(Integer couponId, String orderNo, int couponFeeTotal, int fee,String ids);

    /**
     * 修改支付状态
     */
    void updatePayOrderPayStatus(Integer couponId, String orderNo, int couponFee, Date payTime,String ids);


    /**
     * 修改支付状态
     *
     * @param id
     * @param tradeType
     * @param payWay
     * @param isIsv
     * @param apiUserId
     */
    void updatePayFailOrderStatus(int id, int tradeType, int payWay, int isIsv, int apiUserId);

}
